package main

import (
	"fmt"
)

/**
执行用时：0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗：2 MB, 在所有 Go 提交中击败了99.87%的用户
 */
func myPow(x float64, n int) float64 {

	if n < 0 {
		x = 1.0 / x
		n *= -1
	} else if n == 0 {
		return 1
	} else if n == 1 {
		return x
	}

	if n % 2 == 0 {
		half := myPow(x, n / 2)
		return half * half
	} else {
		return x * myPow(x, n - 1)
	}
}

func main() {

	fmt.Println(myPow(2, 10))
	fmt.Println(myPow(2, -3))
}
